package com.ruoyi.hr.service;

import com.ruoyi.hr.domain.Authority;
import com.ruoyi.hr.domain.Empchange;
import com.ruoyi.hr.domain.JUser;

import java.util.List;
import java.util.Map;

public interface JinPengService {

    /**
     * 获取员工列表
     *
     * @return
     */
    public List<JUser> findAll(JUser juser, List<Authority> authorities,int isAdmin);


    /**
     * 获取数据数量
     *
     * @return
     */
    public int findCount(JUser juser, List<Authority> authorities);


    /**
     * 获取所有公司和部门
     *
     * @return
     */
    public List<Map<String, Object>> findAllTree(List<Authority> authorityList,int isAdmin);

    /**
     * 获取单个员工信息
     *
     * @return
     */
    public JUser findJuserOne(Long eid);

    /**
     * 校验员工编号是否唯一
     *
     * @param badge 员工编号
     * @return 结果
     */
    public String checkBadgeUnique(String badge);


    /**
     * 根据EID集合获取员工信息集合
     *
     * @param allEid 员工编号
     * @return 结果
     */
    public List<JUser> findJuser(List<String> allEid);


    /**
     * 修改岗位
     *
     * @param jUser 修改的员工信息
     * @return 修改成功数
     */
    public int updateExchange(JUser jUser);

    /**
     * 恢复岗位
     *
     * @param empchange 员工修改之前的信息
     * @return 修改成功数
     */
    public int updaterecoveryEx(Empchange empchange);

    /**
     * 新增记录修改信息
     *
     * @param jUser 修改的员工信息
     * @return 新增成功数
     */
    public int insertChangeOrg(JUser jUser);

    /**
     * 新增记录修改信息
     *
     * @param jUser 修改的员工信息
     * @return 新增成功数
     */
    public int inserteEvent(JUser jUser);

    /**
     * 新增记录修改信息
     *
     * @param eid 员工ID
     * @return 改动前岗位信息
     */
    public Empchange findEmpchange(Long eid);

    /**
     * 获取在职员工数量
     *
     * @return 在职员工数
     */
    public int findEmpCount();

    /**
     * 获取某年某月的员工数量
     *
     * @param time 需获取的年月
     * @return 在职员工数
     */
    public int findYearMonthMCount(String time);


    /**
     * 新增员工离职信息
     *
     * @param jUsers     离职的员工信息
     * @param effectdate 生效日期
     * @return 新增成功数
     */
    public int insertexQuit(List<JUser> jUsers, String effectdate);


    /**
     * @param allEid 员工id集合
     * @return
     */
    public int updateQuit(List<String> allEid);

    /**
     * 获取当日调岗员工
     */
    public List<JUser> findEvEmp(String effectdate);

    /**
     * 获取所有在岗人员姓名用逗号隔开
     */
    public List<String> getEmpRow();

    /**
     * 根据工号查询员工信息
     */
    public JUser findEmpByBadge(String badge);

}